package aplitemp.admin;

import java.awt.Component;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Box;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.UIManager;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Logger;

/**
 *
 * @author harriagada
 */
public class Configurator2 extends JFrame implements ActionListener {

    JPanel row1 = new JPanel();
    JLabel nombreProgramaLabel = new JLabel("Nombre del programa", JLabel.RIGHT);
    
    JTextField nombreProgramaField = new JTextField(10);
    JButton examinarButton = new JButton("Examinar");

    JPanel row2 = new JPanel();
    JLabel tiempoEjecucionLabel = new JLabel("Tiempo de ejecución", JLabel.RIGHT);
    JTextField tiempoEjecucionField = new JTextField(4);
    ButtonGroup groupTiempoRadio = new ButtonGroup();
    JRadioButton horaRadio = new JRadioButton("Horas");
    JRadioButton minutoRadio = new JRadioButton("Minutos");
    JRadioButton segundoRadio = new JRadioButton("Segundos");

    JPanel row3 = new JPanel();
    JLabel reiniciarTiempoLabel = new JLabel("¿Reiniciar tiempo?", JLabel.RIGHT);
    ButtonGroup groupTiempoSiNo = new ButtonGroup();
    JRadioButton reiniciarTiempoSi = new JRadioButton("Sí");
    JRadioButton reiniciarTiempoNo = new JRadioButton("No");

    JPanel row4 = new JPanel();
    JLabel diaReinicioLabel = new JLabel("Día de reinicio", JLabel.RIGHT);
    String[] dias = {"Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"};
    JComboBox diasLista = new JComboBox(dias);
    Integer[] horaDia = new Integer[24];
    Integer[] minutoDia = new Integer[60];
    Integer[] segundoDia = new Integer[60];

    JPanel row5 = new JPanel();
    JLabel bloquearProgramaLabel = new JLabel("¿Al terminar el tiempo, bloquear programa?");
    ButtonGroup groupBloqueoSiNo = new ButtonGroup();
    JRadioButton bloqueoSi = new JRadioButton("Sí");
    JRadioButton bloqueoNo = new JRadioButton("No");

    JPanel row6 = new JPanel();
    JButton guardarButton = new JButton("Guardar");

    Logger logger = Logger.getLogger(Configurator2.class.getName());

    public Configurator2() {
        super("Aplitemp - Configurator");
        setLookAndFeel();
        setSize(550, 400);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       
        //GridLayout layout = new GridLayout(6, 2, 10, 10);
        //setLayout(layout);

        FlowLayout flow = new FlowLayout(FlowLayout.LEFT);
        setLayout(flow);
        
        examinarButton.addActionListener(this);
        row1.add(nombreProgramaLabel);
        row1.add(nombreProgramaField);
        row1.add(examinarButton);
        add(row1);

        row2.add(tiempoEjecucionLabel);
        row2.add(tiempoEjecucionField);
        groupTiempoRadio.add(horaRadio);
        groupTiempoRadio.add(minutoRadio);
        groupTiempoRadio.add(segundoRadio);
        row2.add(horaRadio);
        row2.add(minutoRadio);
        row2.add(segundoRadio);
        add(row2);

        row3.add(reiniciarTiempoLabel);
        groupTiempoSiNo.add(reiniciarTiempoSi);
        groupTiempoSiNo.add(reiniciarTiempoNo);
        row3.add(reiniciarTiempoSi);
        row3.add(reiniciarTiempoNo);
        add(row3);

        row4.add(diaReinicioLabel);
        row4.add(diasLista);
        for (int i = 0; i < 24; i++) {
            horaDia[i] = i;
        }
        for (int i = 0; i < 60; i++) {
            minutoDia[i] = i;
            segundoDia[i] = i;
        }

        JComboBox horaList = new JComboBox(horaDia);
        JComboBox minutoList = new JComboBox(minutoDia);
        JComboBox segundoList = new JComboBox(segundoDia);
        row4.add(horaList);
        row4.add(minutoList);
        row4.add(segundoList);
        add(row4);

        row5.add(bloquearProgramaLabel);
        groupBloqueoSiNo.add(bloqueoSi);
        groupBloqueoSiNo.add(bloqueoNo);
        row5.add(bloqueoSi);
        row5.add(bloqueoNo);
        add(row5);

        row6.add(guardarButton);
        add(row6);

        setVisible(true);

    }

    private void setLookAndFeel() {
        BasicConfigurator.configure();
        try {
            logger.info("Cargando estilo de interfaz.");
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
            logger.info("Estilo encontrado y cargado.");
        } catch (Exception exc) {
            logger.error("No se encuentra la clase \"" + exc.getMessage() + "\" que carga el estilo de la interfaz. Se cargará un estilo de interfaz por defecto.");
            //throw new LookAndFeelException("No se encuentra la clase \"" + exc.getMessage() + "\" que carga el estilo de la interfaz.");
        }
    }

    @Override
    public void actionPerformed(ActionEvent event) {
        String cmd = event.getActionCommand();
        switch (cmd) {
            case "Examinar":
                Examinar2 examinar = new Examinar2();
                break;
        }
    }

}
